﻿using System.Data;
using Aspose.Cells;
using GalFrameWork.Models;


namespace GalFrameWork.Utils;

public class ExcelUtil {

    /**
     * 将Excel文件转化为MyDialog的集合
     * String filename 文件路径
     */
    public static List<MyDialog> ReadExcelToDialogs(String filename) {

        // 创建一个包含要打开的 Excel 文件的文件流
        FileStream fstream = new FileStream(filename, FileMode.Open);

        // 实例化一个工作簿对象
        //通过文件流打开Excel文件D
        Workbook workbook = new Workbook(fstream);

        // 访问 Excel 文件中的第一个工作表
        Worksheet worksheet = workbook.Worksheets[0];

        // 将从第一个单元格开始的 50 行 4 列的内容导出到 DataTable
        DataTable table = worksheet.Cells.ExportDataTable(0, 0, 51, 4, true);

        fstream.Close();
        
        //将table转化成MyDialog的集合
        List<MyDialog> dialogs = new List<MyDialog>();
        
        //将Dt类型数据转换成List<MyDialog>类型
        dialogs = DatatableUtil.ReadDatatabelToMyDialogs(table);
        return dialogs;
    }
    
}